home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / can / netlink.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  3KB  |  114 lines

  1. /*
  2.  * linux/can/netlink.h
  3.  *
  4.  * Definitions for the CAN netlink interface
  5.  *
  6.  * Copyright (c) 2009 Wolfgang Grandegger <wg@grandegger.com>
  7.  *
  8.  * Send feedback to <socketcan-users@lists.berlios.de>
  9.  *
  10.  */
  11.  
  12. #ifndef CAN_NETLINK_H
  13. #define CAN_NETLINK_H
  14.  
  15. #include <linux/types.h>
  16.  
  17. /*
  18.  * CAN bit-timing parameters
  19.  *
  20.  * For futher information, please read chapter "8 BIT TIMING
  21.  * REQUIREMENTS" of the "Bosch CAN Specification version 2.0"
  22.  * at http://www.semiconductors.bosch.de/pdf/can2spec.pdf.
  23.  */
  24. struct can_bittiming {
  25.     __u32 bitrate;        /* Bit-rate in bits/second */
  26.     __u32 sample_point;    /* Sample point in one-tenth of a percent */
  27.     __u32 tq;        /* Time quanta (TQ) in nanoseconds */
  28.     __u32 prop_seg;        /* Propagation segment in TQs */
  29.     __u32 phase_seg1;    /* Phase buffer segment 1 in TQs */
  30.     __u32 phase_seg2;    /* Phase buffer segment 2 in TQs */
  31.     __u32 sjw;        /* Synchronisation jump width in TQs */
  32.     __u32 brp;        /* Bit-rate prescaler */
  33. };
  34.  
  35. /*
  36.  * CAN harware-dependent bit-timing constant
  37.  *
  38.  * Used for calculating and checking bit-timing parameters
  39.  */
  40. struct can_bittiming_const {
  41.     char name[16];        /* Name of the CAN controller hardware */
  42.     __u32 tseg1_min;    /* Time segement 1 = prop_seg + phase_seg1 */
  43.     __u32 tseg1_max;
  44.     __u32 tseg2_min;    /* Time segement 2 = phase_seg2 */
  45.     __u32 tseg2_max;
  46.     __u32 sjw_max;        /* Synchronisation jump width */
  47.     __u32 brp_min;        /* Bit-rate prescaler */
  48.     __u32 brp_max;
  49.     __u32 brp_inc;
  50. };
  51.  
  52. /*
  53.  * CAN clock parameters
  54.  */
  55. struct can_clock {
  56.     __u32 freq;        /* CAN system clock frequency in Hz */
  57. };
  58.  
  59. /*
  60.  * CAN operational and error states
  61.  */
  62. enum can_state {
  63.     CAN_STATE_ERROR_ACTIVE = 0,    /* RX/TX error count < 96 */
  64.     CAN_STATE_ERROR_WARNING,    /* RX/TX error count < 128 */
  65.     CAN_STATE_ERROR_PASSIVE,    /* RX/TX error count < 256 */
  66.     CAN_STATE_BUS_OFF,        /* RX/TX error count >= 256 */
  67.     CAN_STATE_STOPPED,        /* Device is stopped */
  68.     CAN_STATE_SLEEPING,        /* Device is sleeping */
  69.     CAN_STATE_MAX
  70. };
  71.  
  72. /*
  73.  * CAN controller mode
  74.  */
  75. struct can_ctrlmode {
  76.     __u32 mask;
  77.     __u32 flags;
  78. };
  79.  
  80. #define CAN_CTRLMODE_LOOPBACK    0x1    /* Loopback mode */
  81. #define CAN_CTRLMODE_LISTENONLY    0x2     /* Listen-only mode */
  82. #define CAN_CTRLMODE_3_SAMPLES    0x4    /* Triple sampling mode */
  83.  
  84. /*
  85.  * CAN device statistics
  86.  */
  87. struct can_device_stats {
  88.     __u32 bus_error;    /* Bus errors */
  89.     __u32 error_warning;    /* Changes to error warning state */
  90.     __u32 error_passive;    /* Changes to error passive state */
  91.     __u32 bus_off;        /* Changes to bus off state */
  92.     __u32 arbitration_lost; /* Arbitration lost errors */
  93.     __u32 restarts;        /* CAN controller re-starts */
  94. };
  95.  
  96. /*
  97.  * CAN netlink interface
  98.  */
  99. enum {
  100.     IFLA_CAN_UNSPEC,
  101.     IFLA_CAN_BITTIMING,
  102.     IFLA_CAN_BITTIMING_CONST,
  103.     IFLA_CAN_CLOCK,
  104.     IFLA_CAN_STATE,
  105.     IFLA_CAN_CTRLMODE,
  106.     IFLA_CAN_RESTART_MS,
  107.     IFLA_CAN_RESTART,
  108.     __IFLA_CAN_MAX
  109. };
  110.  
  111. #define IFLA_CAN_MAX    (__IFLA_CAN_MAX - 1)
  112.  
  113. #endif /* CAN_NETLINK_H */
  114.